#pragma once
#include <arpa/inet.h>
#include<netinet/in.h> 
#include<string>

class InetAddress
{
private:
    // 地址协议的结构体
    sockaddr_in addr_;
public:
    // 客户端连接上来创建的fd用这个构造函数
    InetAddress();
    // 服务端创建的fd用这个构造函数
    InetAddress(const std::string &ip, uint16_t port);
    // 客户端连接上来创建的fd用这个构造函数
    InetAddress(const sockaddr_in addr);
    // 析构函数
    ~InetAddress();
    // 返回字符串表示的地址，例如：192.168.16.151
    const char* ip() const;
    // 返回整数表示的地址，例如：5085、6060
    uint16_t port() const;
    // 返回 addr_ 成员的地址，转换成了 sockaddr
    const sockaddr* addr() const;
    // 设置 addr_ 成员的值
    void setaddr(sockaddr_in clientaddr);
};